home *** CD-ROM | disk | FTP | other *** search
Wrap
# Source Generated with Decompyle++ # File: in.pyc (Python 2.6) __version__ = '0.2' __title__ = 'Model Query Utility' __mod__ = 'hp-query' __doc__ = 'Query a printer model for static model information. Designed to be called from other processes.' import sys from base.g import * from base import device, models, module try: mod = module.Module(__mod__, __title__, __version__, __doc__, None, (NON_INTERACTIVE_MODE,), quiet = True) mod.setUsage(0, extra_options = [ ('Specify model by device URI:', '-d<device_uri> or --device=<device_uri>', 'option', False), ('Specify normalized model name:', '-m<model_name> or --model=<model_name> (normalized models.dat format)', 'option', False), ('Specify raw model name:', '-r<model_name> or --raw=<model_name> (raw model name from MDL: field of device ID)', 'option', False), ('Specify key to query:', '-k<key> or --key=<key> (or, use -a/--all to return all keys)', 'option', False), ('Query all keys:', '-a or --all (default separator is a LF)', 'option', False), ('Specify the separator when multiple keys are queried:', "-s<sep> --sep=<sep> (character or 'tab', 'newline', 'cr', 'lf', 'crlf')(only valid when used with -a/--all)", 'option', False), ('Suppress trailing linefeed:', '-x', 'option', False)], see_also_list = [ 'hp-info']) (opts, device_uri, printer_name, mode, ui_toolkit, lang) = mod.parseStdOpts('m:k:as:d:r:x', [ 'model=', 'key=', 'sep=', 'all', 'device=', 'raw='], handle_device_printer = False) norm_model = None raw_model = None device_uri = None key = None all_keys = False sep = 'lf' suppress_trailing_linefeed = False for o, a in opts: if o in ('-m', '--model'): norm_model = a continue if o in ('-d', '--model'): device_uri = a continue if o in ('-k', '--key'): key = a all_keys = False continue if o in ('-a', '--all'): all_keys = True key = None continue if o in ('-r', '--raw'): raw_model = a continue if o in ('-s', '--sep'): sep = a continue if o == '-x': suppress_trailing_linefeed = True continue if not device_uri or norm_model: if (device_uri or raw_model or norm_model) and raw_model: log.stderr('error: You may only specify one of -d, -m, or -r.') sys.exit(1) if not device_uri and not norm_model and not raw_model: log.stderr('error: You must specify one of -d, -m, or -r.') sys.exit(1) if device_uri: try: (back_end, is_hp, bus, norm_model, serial, dev_file, host, zc, port) = device.parseDeviceURI(device_uri) except Error: log.stderr('error: Invalid device URI: %s' % device_uri) sys.exit(1) except: None<EXCEPTION MATCH>Error None<EXCEPTION MATCH>Error if raw_model: norm_model = models.normalizeModelName(raw_model).lower() if not norm_model: log.stderr('error: Invalid model name.') sys.exit(1) s = sep.lower() if s in ('lf', 'newline'): sep = '\n' elif s == 'cr': sep = '\r' elif s == 'crlf': sep = '\r\n' elif s == 'tab': sep = '\t' elif s == '=': log.stderr("error: Separator must not be '='.") sys.exit(1) data = device.queryModelByModel(norm_model) if not data: log.stderr("error: Model name '%s' not found." % norm_model) sys.exit(1) output = '' if all_keys: kk = data.keys() kk.sort() for k in kk: if not output: output = '%s=%s' % (k, data[k]) continue output = sep.join([ output, '%s=%s' % (k, data[k])]) elif key: try: data[key] except KeyError: log.stderr("error: Key '%s' not found." % key) sys.exit(1) output = '%s=%s' % (key, data[key]) else: log.stderr('error: Must specify key with -k/--key or specify -a/--all.') sys.exit(1) if suppress_trailing_linefeed: print output, else: print output except KeyboardInterrupt: pass